/**
 * Genericsを使ったクラスの関数をオーバーライドしたときに起こる変な現象
 * flash9 以降でのみ発生する。
 *
 * to compile : haxe -cp test -swf-version 9 -swf privateAccess.swf -main PrivateAccess
 *
 *
 * 2009/03 IT Planning.
 *
 */

class Test {
	static function main () {
		trace ("I'm Taro.");
	}
}

class C <T> {
	public function foo(t : T) : T {
		return t;
	}
}

class D extends C <Int> {
	// ここのコメントを外すと、プログラム全体が動作しなくなる(main関数ではDクラスを使っていないのに)。
// 	public override function foo(i: Int) : Int {
// 		return i + 1;
// 	}
}

// サブクラスもGenericなら問題ない。
class E<T> extends C<T>
{
	public override function foo(t : T) : T
	{
		return t;
	}
}
